package pl.egraveyard.dao;

import java.sql.Date;
import java.util.List;

import org.apache.commons.lang.Validate;
import org.hibernate.criterion.Restrictions;

import pl.egraveyard.domain.Kwatera;
import pl.egraveyard.domain.Pochowek;
import pl.egraveyard.domain.Zmarly;

/**
 * Implementacja {@link PochowekDao}
 * @author gunos
 *
 */
public class PochowekDaoImpl extends AbstractDaoSupportImpl<Pochowek> implements PochowekDao {

	@Override
	public List<Pochowek> getAllBefore(Date date) {
		Validate.notNull(date);//TODO czego data wygenerowania ?
		return null;
	}

	@Override
	public List<Pochowek> getAllAfter(Date date) {
		Validate.notNull(date);//TODO czego data wygenerowania ?
		return null;
	}

	@SuppressWarnings("unchecked")
	@Override
	public List<Pochowek> getByDead(Zmarly deadguy) {
		Validate.notNull(deadguy);
		return getCurrentSession().createCriteria(Pochowek.class).add(
				Restrictions.eq("id", deadguy.getPochowek().getId())).list();
	}

	@SuppressWarnings("unchecked")
	@Override
	public List<Pochowek> getByPlace(Kwatera place) {
		Validate.notNull(place);
		return getCurrentSession().createCriteria(Pochowek.class).add(
				Restrictions.eq("kwatera", place)).list();
	}

}
